package com.chuangdun.flutter.plugin.alarm

import android.app.ActivityManager
import android.content.Context
import android.net.Uri
import android.util.Log

/**
 * 闹钟工具类
 */
class AlarmUtils {
    companion object {
        private const val TAG = "AlarmUtils"

        /**
         * 获取闹钟铃声URI
         * 优先使用应用raw资源中的alarm.mp3文件，如果不存在则使用系统默认闹钟铃声
         */
        @JvmStatic
        fun getAlarmSoundUri(context: Context): Uri? {
            // 首先尝试使用应用的raw资源中的alarm.mp3文件
            try {
                val resId = context.resources.getIdentifier("alarm", "raw", context.packageName)
                if (resId != 0) {
                    // 如果找到了资源，构建资源URI
                    return Uri.parse("android.resource://${context.packageName}/$resId")
                }
            } catch (e: Exception) {
                Log.w(TAG, "无法访问raw资源中的alarm.mp3文件: ${e.message}")
            }
            
            // 如果没有找到raw资源，则使用系统默认闹钟铃声
            return android.provider.Settings.System.DEFAULT_ALARM_ALERT_URI
        }

        /**
         * 检查应用是否在前台运行
         */
        @JvmStatic
        fun isAppInForeground(context: Context): Boolean {
            val activityManager = context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
            val appProcesses = activityManager.runningAppProcesses ?: return false
            val packageName = context.packageName
            for (appProcess in appProcesses) {
                if (appProcess.processName == packageName && 
                    appProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
                    return true
                }
            }
            return false
        }
    }
}